#include <iostream>
#include <cstring>

using namespace std;
/*
题目描述：
给出一个小于2^{32}2 
32
 的正整数。这个数可以用一个3232位的二进制数表示（不足3232位用00补足）。我们称这个二进制数的前1616位为“高位”，
 后1616位为“低位”。将它的高低位交换，我们可以得到一个新的数。试问这个新的数是多少（用十进制表示）。

例如，数13145201314520用二进制表示为0000 0000 0001 0100 0000 1110 1101 100000000000000101000000111011011000（添加了11个前导0补足为32位），其中前16位为高位，即0000 0000 0001 01000000000000010100；后16位为低位，即0000 1110 1101 10000000111011011000。将它的高低位进行交换，我们得到了
一个新的二进制数0000 1110 1101 1000 0000 0000 0001 010000001110110110000000000000010100。它即是十进制的249036820249036820。
*/

//考察点位运算
//左移一位相当于这个数*2，右移一位相当于这个数/2

int main()
{
    unsigned int n;
    cin >> n;
    cout << (n>>16)+(n<<16);
    //n>>16低四位消失，高四位成为低四位， n<<16高四位消失，低四位变为高四位
    return 0;
}